// 定义懒加载插件
import { useIntersectionObserver } from '@vueuse/core'
import defaultImg from '@/assets/images/200.png'
export const lazyPlugin = {
    install(app) {
        //定义全局指令  图片懒加载
        app.directive('img-lazy', {
            // el:指令绑定的那个元素 img
            // binding：binding.value 指令等于号后面绑定的表达式的值
            mounted(el, binding) {
                const { stop } = useIntersectionObserver(
                    el,
                    ([{ isIntersecting }]) => {
                        if (isIntersecting) {
                            // 如果图片加载失败，则显示默认图片，onerror错误事件
                            el.onerror = () => {
                                el.src = defaultImg
                            }
                            el.src = binding.value
                            // 停止监听
                            stop()
                        }
                    }
                )
            }
        })
    }
}